﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;

namespace ArtMath
{
    /// <summary>
    /// 轴对称
    /// </summary>
    //public class AxialSymmetryManager : ComponentManagerBase
    //{
    //    StraightLineBase symmetricAxis;
    //    Base originalImage, mirrorImage;
    //    public AxialSymmetryManager(SketchPad pad, string name, Base obj, StraightLineBase dcz, bool addToList = true) : base(pad, name, ToolTypeName.zdc, addToList)
    //    {
    //        OriginalImage = obj;
    //        SymmetricAxis = dcz;
    //    }
    //    [MultilingualCategory("Structure")]
    //    public StraightLineBase 对称轴
    //    {
    //        get { return SymmetricAxis; }
    //        set { SymmetricAxis = value; }
    //    }
    //    [Browsable(false)]
    //    public StraightLineBase SymmetricAxis
    //    {
    //        get { return symmetricAxis; }
    //        set
    //        {
    //            symmetricAxis?.ComponentManagers.Remove(this);
    //            symmetricAxis = value;
    //            symmetricAxis?.ComponentManagers.Add(this);
    //        }
    //    }
    //    [MultilingualCategory("Structure")]
    //    public Base 原像
    //    {
    //        get { return OriginalImage; }
    //        set { OriginalImage = value; }
    //    }
    //    [Browsable(false)]
    //    public Base OriginalImage
    //    {
    //        get { return originalImage; }
    //        set
    //        {
    //            originalImage?.ComponentManagers.Remove(this);
    //            originalImage = value;
    //            originalImage?.ComponentManagers.Add(this);
    //        }
    //    }
    //    [MultilingualCategory("Structure")]
    //    public Base 镜像
    //    {
    //        get { return MirrorImage; }
    //        set { MirrorImage = value; }
    //    }
    //    [Browsable(false)]
    //    public Base MirrorImage
    //    {
    //        get { return mirrorImage; }
    //        set
    //        {
    //            mirrorImage?.ComponentManagers.Remove(this);
    //            mirrorImage = value;
    //            mirrorImage?.ComponentManagers.Add(this);
    //        }
    //    }
    //    public override void PointMoving_ManagedComponentsLimit(Base component)
    //    {
    //        base.PointMoving_ManagedComponentsLimit(component);
    //    }
    //    public override void CreateComponents()
    //    {
    //        MirrorImage = OriginalImage.CreateMirrorImage(SymmetricAxis.A, SymmetricAxis.B, SymmetricAxis.C);
    //        base.CreateComponents();
    //    }
    //}
}
